document.addEventListener('DOMContentLoaded', function() {
    const currentUser = JSON.parse(localStorage.getItem('currentUser'));
    
    if (!currentUser) {
        alert('请先登录');
        window.location.href = '../login.html';
        return;
    }
    
    // 加载地址列表
    loadAddresses();
    
    // 添加地址按钮点击事件
    document.getElementById('addAddressBtn').addEventListener('click', function() {
        openAddressModal();
    });
    
    // 关闭模态框
    document.querySelector('.close-btn').addEventListener('click', closeAddressModal);
    
    // 地址表单提交
    document.getElementById('addressForm').addEventListener('submit', saveAddress);
    
    // 省份选择变化时加载城市
    document.getElementById('province').addEventListener('change', function() {
        loadCities(this.value);
    });
    
    // 城市选择变化时加载区县
    document.getElementById('city').addEventListener('change', function() {
        loadDistricts(document.getElementById('province').value, this.value);
    });
    
    // 初始化省份数据
    loadProvinces();
});

// 加载地址列表
function loadAddresses() {
    const currentUser = JSON.parse(localStorage.getItem('currentUser'));
    const addresses = JSON.parse(localStorage.getItem('addresses')) || [];
    const userAddresses = addresses.filter(addr => addr.userId === currentUser.id);
    
    const addressesList = document.getElementById('addressesList');
    addressesList.innerHTML = '';
    
    if (userAddresses.length === 0) {
        addressesList.innerHTML = '<p class="empty-addresses">暂无收货地址</p>';
        return;
    }
    
    userAddresses.forEach(address => {
        const addressCard = document.createElement('div');
        addressCard.className = `address-card ${address.isDefault ? 'default' : ''}`;
        addressCard.innerHTML = `
            <div class="address-header">
                <div>
                    <span class="address-name">${address.name}</span>
                    <span class="address-phone">${address.phone}</span>
                    ${address.isDefault ? '<span class="default-tag">默认</span>' : ''}
                </div>
            </div>
            <div class="address-detail">
                ${address.province} ${address.city} ${address.district} ${address.detail}
            </div>
            <div class="address-actions">
                ${!address.isDefault ? '<button class="set-default-btn" onclick="setDefaultAddress(\'' + address.id + '\')">设为默认</button>' : ''}
                <button class="edit-btn" onclick="editAddress(\'' + address.id + '\')">编辑</button>
                <button class="delete-btn" onclick="deleteAddress(\'' + address.id + '\')">删除</button>
            </div>
        `;
        addressesList.appendChild(addressCard);
    });
}

// 打开地址模态框
function openAddressModal(addressId = null) {
    const modal = document.getElementById('addressModal');
    const modalTitle = document.getElementById('modalTitle');
    const form = document.getElementById('addressForm');
    
    if (addressId) {
        // 编辑模式
        modalTitle.textContent = '编辑收货地址';
        const addresses = JSON.parse(localStorage.getItem('addresses')) || [];
        const address = addresses.find(addr => addr.id === addressId);
        
        if (address) {
            document.getElementById('addressId').value = address.id;
            document.getElementById('name').value = address.name;
            document.getElementById('phone').value = address.phone;
            document.getElementById('detail').value = address.detail;
            document.getElementById('isDefault').checked = address.isDefault;
            
            // 设置地区选择
            loadProvinces(address.province);
            setTimeout(() => {
                document.getElementById('province').value = address.province;
                loadCities(address.province, address.city);
                setTimeout(() => {
                    document.getElementById('city').value = address.city;
                    loadDistricts(address.province, address.city, address.district);
                    setTimeout(() => {
                        document.getElementById('district').value = address.district;
                    }, 100);
                }, 100);
            }, 100);
        }
    } else {
        // 添加模式
        modalTitle.textContent = '添加收货地址';
        form.reset();
        document.getElementById('addressId').value = '';
    }
    
    modal.style.display = 'block';
}

// 关闭地址模态框
function closeAddressModal() {
    document.getElementById('addressModal').style.display = 'none';
}

// 保存地址
function saveAddress(e) {
    e.preventDefault();
    
    const currentUser = JSON.parse(localStorage.getItem('currentUser'));
    const addressId = document.getElementById('addressId').value;
    const name = document.getElementById('name').value.trim();
    const phone = document.getElementById('phone').value.trim();
    const province = document.getElementById('province').value;
    const city = document.getElementById('city').value;
    const district = document.getElementById('district').value;
    const detail = document.getElementById('detail').value.trim();
    const isDefault = document.getElementById('isDefault').checked;
    
    // 验证手机号
    if (!validatePhone(phone)) {
        alert('请输入有效的手机号码');
        return;
    }
    
    // 验证地区选择
    if (!province || !city || !district) {
        alert('请选择完整的地区信息');
        return;
    }
    
    let addresses = JSON.parse(localStorage.getItem('addresses')) || [];
    
    if (addressId) {
        // 更新现有地址
        const index = addresses.findIndex(addr => addr.id === addressId);
        if (index !== -1) {
            addresses[index] = {
                ...addresses[index],
                name,
                phone,
                province,
                city,
                district,
                detail,
                isDefault
            };
        }
    } else {
        // 添加新地址
        const newAddress = {
            id: Date.now().toString(),
            userId: currentUser.id,
            name,
            phone,
            province,
            city,
            district,
            detail,
            isDefault,
            createdAt: new Date().toLocaleString()
        };
        addresses.push(newAddress);
    }
    
    // 如果设置为默认地址，取消其他默认地址
    if (isDefault) {
        addresses = addresses.map(addr => {
            if (addr.userId === currentUser.id && addr.id !== addressId) {
                return { ...addr, isDefault: false };
            }
            return addr;
        });
    }
    
    localStorage.setItem('addresses', JSON.stringify(addresses));
    closeAddressModal();
    loadAddresses();
    alert('地址保存成功');
}

// 加载省份数据
function loadProvinces(selectedProvince = null) {
    // 这里应该是从服务器获取省份数据，这里使用模拟数据
    const provinces = [
        { code: '11', name: '北京市' },
        { code: '12', name: '天津市' },
        { code: '13', name: '河北省' },
        { code: '14', name: '山西省' },
        { code: '15', name: '内蒙古自治区' },
        { code: '21', name: '辽宁省' },
        { code: '22', name: '吉林省' },
        { code: '23', name: '黑龙江省' },
        { code: '31', name: '上海市' },
        { code: '32', name: '江苏省' },
        { code: '33', name: '浙江省' },
        { code: '34', name: '安徽省' },
        { code: '35', name: '福建省' },
        { code: '36', name: '江西省' },
        { code: '37', name: '山东省' },
        { code: '41', name: '河南省' },
        { code: '42', name: '湖北省' },
        { code: '43', name: '湖南省' },
        { code: '44', name: '广东省' },
        { code: '45', name: '广西壮族自治区' },
        { code: '46', name: '海南省' },
        { code: '50', name: '重庆市' },
        { code: '51', name: '四川省' },
        { code: '52', name: '贵州省' },
        { code: '53', name: '云南省' },
        { code: '54', name: '西藏自治区' },
        { code: '61', name: '陕西省' },
        { code: '62', name: '甘肃省' },
        { code: '63', name: '青海省' },
        { code: '64', name: '宁夏回族自治区' },
        { code: '65', name: '新疆维吾尔自治区' },
        { code: '71', name: '台湾省' },
        { code: '81', name: '香港特别行政区' },
        { code: '82', name: '澳门特别行政区' }
    ];
    
    const provinceSelect = document.getElementById('province');
    provinceSelect.innerHTML = '<option value="">请选择省份</option>';
    
    provinces.forEach(province => {
        const option = document.createElement('option');
        option.value = province.name;
        option.textContent = province.name;
        if (selectedProvince === province.name) {
            option.selected = true;
        }
        provinceSelect.appendChild(option);
    });
    
    // 重置城市和区县选择
    document.getElementById('city').innerHTML = '<option value="">请选择城市</option>';
    document.getElementById('city').disabled = true;
    document.getElementById('district').innerHTML = '<option value="">请选择区县</option>';
    document.getElementById('district').disabled = true;
}

// 加载城市数据
function loadCities(provinceName, selectedCity = null) {
    if (!provinceName) return;
    
    // 模拟城市数据
    const cityData = {
        '北京市': ['北京市'],
        '天津市': ['天津市'],
        '河北省': ['石家庄市', '唐山市', '秦皇岛市', '邯郸市', '邢台市', '保定市', '张家口市', '承德市', '沧州市', '廊坊市', '衡水市'],
        '山西省': ['太原市', '大同市', '阳泉市', '长治市', '晋城市', '朔州市', '晋中市', '运城市', '忻州市', '临汾市', '吕梁市'],
        '内蒙古自治区': ['呼和浩特市', '包头市', '乌海市', '赤峰市', '通辽市', '鄂尔多斯市', '呼伦贝尔市', '巴彦淖尔市', '乌兰察布市'],
        '辽宁省': ['沈阳市', '大连市', '鞍山市', '抚顺市', '本溪市', '丹东市', '锦州市', '营口市', '阜新市', '辽阳市', '盘锦市', '铁岭市', '朝阳市', '葫芦岛市'],
        '吉林省': ['长春市', '吉林市', '四平市', '辽源市', '通化市', '白山市', '松原市', '白城市'],
        '黑龙江省': ['哈尔滨市', '齐齐哈尔市', '鸡西市', '鹤岗市', '双鸭山市', '大庆市', '伊春市', '佳木斯市', '七台河市', '牡丹江市', '黑河市', '绥化市'],
        '上海市': ['上海市'],
        '江苏省': ['南京市', '无锡市', '徐州市', '常州市', '苏州市', '南通市', '连云港市', '淮安市', '盐城市', '扬州市', '镇江市', '泰州市', '宿迁市'],
        '浙江省': ['杭州市', '宁波市', '温州市', '嘉兴市', '湖州市', '绍兴市', '金华市', '衢州市', '舟山市', '台州市', '丽水市'],
        '安徽省': ['合肥市', '芜湖市', '蚌埠市', '淮南市', '马鞍山市', '淮北市', '铜陵市', '安庆市', '黄山市', '滁州市', '阜阳市', '宿州市', '巢湖市', '六安市', '亳州市', '池州市', '宣城市'],
        '福建省': ['福州市', '厦门市', '莆田市', '三明市', '泉州市', '漳州市', '南平市', '龙岩市', '宁德市'],
        '江西省': ['南昌市', '景德镇市', '萍乡市', '九江市', '新余市', '鹰潭市', '赣州市', '吉安市', '宜春市', '抚州市', '上饶市'],
        '山东省': ['济南市', '青岛市', '淄博市', '枣庄市', '东营市', '烟台市', '潍坊市', '济宁市', '泰安市', '威海市', '日照市', '莱芜市', '临沂市', '德州市', '聊城市', '滨州市', '菏泽市'],
        '河南省': ['郑州市', '开封市', '洛阳市', '平顶山市', '安阳市', '鹤壁市', '新乡市', '焦作市', '濮阳市', '许昌市', '漯河市', '三门峡市', '南阳市', '商丘市', '信阳市', '周口市', '驻马店市'],
        '湖北省': ['武汉市', '黄石市', '十堰市', '宜昌市', '襄阳市', '鄂州市', '荆门市', '孝感市', '荆州市', '黄冈市', '咸宁市', '随州市'],
        '湖南省': ['长沙市', '株洲市', '湘潭市', '衡阳市', '邵阳市', '岳阳市', '常德市', '张家界市', '益阳市', '郴州市', '永州市', '怀化市', '娄底市'],
        '广东省': [
            '广州市', '深圳市', '珠海市', '汕头市', '佛山市', '韶关市', '湛江市', '肇庆市', '江门市', '茂名市', '惠州市', '梅州市', '汕尾市', '河源市', '阳江市', '清远市', '东莞市', '中山市', '潮州市', '揭阳市', '云浮市'
        ],
        '广西壮族自治区': ['南宁市', '柳州市', '桂林市', '梧州市', '北海市', '防城港市', '钦州市', '贵港市', '玉林市', '百色市', '贺州市', '河池市', '来宾市', '崇左市'],
        '海南省': ['海口市', '三亚市', '三沙市', '儋州市'],
        '重庆市': ['重庆市'],
        '四川省': [
            '成都市', '自贡市', '攀枝花市', '泸州市', '德阳市', '绵阳市', '广元市', '遂宁市', '内江市', '乐山市', '南充市', '眉山市', '宜宾市', '广安市', '达州市', '雅安市', '巴中市', '资阳市', '阿坝藏族羌族自治州', '甘孜藏族自治州', '凉山彝族自治州'
        ],
        '贵州省': ['贵阳市', '六盘水市', '遵义市', '安顺市', '毕节市', '铜仁市'],
        '云南省': ['昆明市', '曲靖市', '玉溪市', '保山市', '昭通市', '丽江市', '普洱市', '临沧市'],
        '西藏自治区': ['拉萨市', '日喀则市', '昌都市', '林芝市', '山南市', '那曲市'],
        '陕西省': ['西安市', '铜川市', '宝鸡市', '咸阳市', '渭南市', '延安市', '汉中市', '榆林市', '安康市', '商洛市'],
        '甘肃省': ['兰州市', '嘉峪关市', '金昌市', '白银市', '天水市', '武威市', '张掖市', '平凉市', '酒泉市', '庆阳市', '定西市', '陇南市'],
        '青海省': ['西宁市', '海东市'],
        '宁夏回族自治区': ['银川市', '石嘴山市', '吴忠市', '固原市', '中卫市'],
        '新疆维吾尔自治区': ['乌鲁木齐市', '克拉玛依市', '吐鲁番市', '哈密市'],
        '台湾省': ['台北市', '新北市', '桃园市', '台中市', '台南市', '高雄市'],
        '香港特别行政区': ['香港岛', '九龙', '新界'],
        '澳门特别行政区': ['花地玛堂区', '圣安多尼堂区', '大堂区', '望德堂区', '风顺堂区']
    };
    
    const cities = cityData[provinceName] || [];
    const citySelect = document.getElementById('city');
    citySelect.innerHTML = '<option value="">请选择城市</option>';
    
    cities.forEach(city => {
        const option = document.createElement('option');
        option.value = city;
        option.textContent = city;
        if (selectedCity === city) {
            option.selected = true;
        }
        citySelect.appendChild(option);
    });
    
    citySelect.disabled = false;
    
    // 重置区县选择
    document.getElementById('district').innerHTML = '<option value="">请选择区县</option>';
    document.getElementById('district').disabled = true;
}

// 加载区县数据
function loadDistricts(provinceName, cityName, selectedDistrict = null) {
    if (!provinceName || !cityName) return;
    
    // 模拟区县数据
    const districtData = {
        '北京市-北京市': ['东城区', '西城区', '朝阳区', '丰台区', '石景山区', '海淀区', '门头沟区', '房山区', '通州区', '顺义区', '昌平区', '大兴区', '怀柔区', '平谷区', '密云区', '延庆区'],
        '天津市-天津市': ['和平区', '河东区', '河西区', '南开区', '河北区', '红桥区', '东丽区', '西青区', '津南区', '北辰区', '武清区', '宝坻区', '滨海新区', '宁河区', '静海区', '蓟州区'],
        // 四川省部分区县数据
        '四川省-成都市': ['锦江区', '青羊区', '金牛区', '武侯区', '成华区', '龙泉驿区', '青白江区', '新都区', '温江区', '双流区', '郫都区', '金堂县', '大邑县', '蒲江县', '新津县', '简阳市', '都江堰市', '彭州市', '邛崃市', '崇州市'],
        '四川省-自贡市': ['自流井区', '贡井区', '大安区', '沿滩区', '荣县', '富顺县'],
        '四川省-攀枝花市': ['东区', '西区', '仁和区', '米易县', '盐边县'],
        '四川省-泸州市': ['江阳区', '纳溪区', '龙马潭区', '泸县', '合江县', '叙永县', '古蔺县'],
        '四川省-德阳市': ['旌阳区', '罗江区', '中江县', '广汉市', '什邡市', '绵竹市'],
        '四川省-绵阳市': ['涪城区', '游仙区', '安州区', '三台县', '盐亭县', '梓潼县', '平武县', '江油市', '北川羌族自治县'],
        '四川省-广元市': ['利州区', '昭化区', '朝天区', '旺苍县', '青川县', '剑阁县', '苍溪县'],
        '四川省-遂宁市': ['船山区', '安居区', '蓬溪县', '射洪市', '大英县'],
        '四川省-内江市': ['市中区', '东兴区', '威远县', '资中县', '隆昌市'],
        '四川省-乐山市': ['市中区', '沙湾区', '五通桥区', '金口河区', '犍为县', '井研县', '夹江县', '沐川县', '峨眉山市', '峨边彝族自治县', '马边彝族自治县'],
        '四川省-南充市': ['顺庆区', '高坪区', '嘉陵区', '南部县', '营山县', '蓬安县', '仪陇县', '西充县', '阆中市'],
        '四川省-眉山市': ['东坡区', '彭山区', '仁寿县', '洪雅县', '丹棱县', '青神县'],
        '四川省-宜宾市': ['翠屏区', '南溪区', '叙州区', '江安县', '长宁县', '高县', '珙县', '筠连县', '兴文县', '屏山县'],
        '四川省-广安市': ['广安区', '前锋区', '岳池县', '武胜县', '邻水县', '华蓥市'],
        '四川省-达州市': ['通川区', '达川区', '宣汉县', '开江县', '大竹县', '渠县', '万源市'],
        '四川省-雅安市': ['雨城区', '名山区', '荥经县', '汉源县', '石棉县', '天全县', '芦山县', '宝兴县'],
        '四川省-巴中市': ['巴州区', '恩阳区', '平昌县', '通江县', '南江县'],
        '四川省-资阳市': ['雁江区', '安岳县', '乐至县'],
        // 广东省部分区县数据
        '广东省-广州市': ['荔湾区', '越秀区', '海珠区', '天河区', '白云区', '黄埔区', '番禺区', '花都区', '南沙区', '从化区', '增城区'],
        '广东省-深圳市': ['罗湖区', '福田区', '南山区', '宝安区', '龙岗区', '盐田区', '龙华区', '坪山区', '光明区'],
        '广东省-珠海市': ['香洲区', '斗门区', '金湾区'],
        '广东省-汕头市': ['龙湖区', '金平区', '濠江区', '潮阳区', '潮南区', '澄海区', '南澳县'],
        '广东省-佛山市': ['禅城区', '南海区', '顺德区', '三水区', '高明区'],
        '广东省-韶关市': ['浈江区', '武江区', '曲江区', '始兴县', '仁化县', '翁源县', '乳源瑶族自治县', '新丰县', '乐昌市', '南雄市'],
        '广东省-湛江市': ['赤坎区', '霞山区', '坡头区', '麻章区', '遂溪县', '徐闻县', '廉江市', '雷州市', '吴川市'],
        '广东省-肇庆市': ['端州区', '鼎湖区', '高要区', '广宁县', '怀集县', '封开县', '德庆县', '四会市'],
        '广东省-江门市': ['蓬江区', '江海区', '新会区', '台山市', '开平市', '鹤山市', '恩平市'],
        '广东省-茂名市': ['茂南区', '电白区', '高州市', '化州市', '信宜市'],
        '广东省-惠州市': ['惠城区', '惠阳区', '博罗县', '惠东县', '龙门县'],
        '广东省-梅州市': ['梅江区', '梅县区', '大埔县', '丰顺县', '五华县', '平远县', '蕉岭县', '兴宁市'],
        '广东省-汕尾市': ['城区', '海丰县', '陆河县', '陆丰市'],
        '广东省-河源市': ['源城区', '紫金县', '龙川县', '连平县', '和平县', '东源县'],
        '广东省-阳江市': ['江城区', '阳东区', '阳西县', '阳春市'],
        '广东省-清远市': ['清城区', '清新区', '佛冈县', '阳山县', '连山壮族瑶族自治县', '连南瑶族自治县', '英德市', '连州市'],
        '广东省-东莞市': ['莞城街道', '南城街道', '东城街道', '万江街道', '石龙镇', '虎门镇', '长安镇', '沙田镇', '厚街镇', '寮步镇', '大岭山镇', '大朗镇', '黄江镇', '樟木头镇', '凤岗镇', '塘厦镇', '谢岗镇', '清溪镇', '常平镇', '桥头镇', '横沥镇', '东坑镇', '企石镇', '石排镇', '茶山镇', '道滘镇', '洪梅镇', '麻涌镇', '中堂镇', '高埗镇'],
        '广东省-中山市': ['石岐街道', '东区街道', '西区街道', '南区街道', '五桂山街道', '小榄镇', '古镇镇', '横栏镇', '东升镇', '港口镇', '沙溪镇', '大涌镇', '黄圃镇', '南头镇', '东凤镇', '阜沙镇', '三角镇', '民众镇', '南朗镇', '三乡镇', '坦洲镇', '板芙镇', '神湾镇'],
        '广东省-潮州市': ['湘桥区', '潮安区', '饶平县'],
        '广东省-揭阳市': ['榕城区', '揭东区', '揭西县', '惠来县', '普宁市'],
        '广东省-云浮市': ['云城区', '云安区', '新兴县', '郁南县', '罗定市']
    };
    
    const districts = districtData[`${provinceName}-${cityName}`] || [];
    const districtSelect = document.getElementById('district');
    districtSelect.innerHTML = '<option value="">请选择区县</option>';
    
    districts.forEach(district => {
        const option = document.createElement('option');
        option.value = district;
        option.textContent = district;
        if (selectedDistrict === district) {
            option.selected = true;
        }
        districtSelect.appendChild(option);
    });
    
    districtSelect.disabled = false;
}

// 验证手机号码
function validatePhone(phone) {
    const regex = /^1[3-9]\d{9}$/;
    return regex.test(phone);
}

// 设置默认地址
function setDefaultAddress(addressId) {
    let addresses = JSON.parse(localStorage.getItem('addresses')) || [];
    const currentUser = JSON.parse(localStorage.getItem('currentUser'));

    addresses = addresses.map(addr => {
        if (addr.userId === currentUser.id) {
            return { ...addr, isDefault: addr.id === addressId };
        }
        return addr;
    });

    localStorage.setItem('addresses', JSON.stringify(addresses));
    loadAddresses();
}

// 编辑地址
function editAddress(addressId) {
    openAddressModal(addressId);
}

// 删除地址
function deleteAddress(addressId) {
    if (confirm('确定要删除该地址吗？')) {
        let addresses = JSON.parse(localStorage.getItem('addresses')) || [];
        addresses = addresses.filter(addr => addr.id !== addressId);
        localStorage.setItem('addresses', JSON.stringify(addresses));
        loadAddresses();
    }
}